package cn.org.timespace.easyframe.service.permission.impl;

import java.util.List;

import org.apache.commons.lang.StringUtils;

import cn.org.timespace.easyframe.dao.permission.EfRoleMenuDAO;
import cn.org.timespace.easyframe.model.permission.EfMenu;
import cn.org.timespace.easyframe.model.permission.EfRole;
import cn.org.timespace.easyframe.model.permission.EfRoleMenu;
import cn.org.timespace.easyframe.service.permission.EfRoleMenuService;
import cn.org.timespace.easyframe.util.generator.IdentityGenerator;

/**
 * <p>
 * 角色菜单
 * </p>
 * 
 * @version 1.0, 11/02/27
 * @since 1.0
 * @author wubo
 */

public class EfRoleMenuServiceImpl implements EfRoleMenuService {

	private EfRoleMenuDAO efRoleMenuDao;

	public List<EfRoleMenu> findByCondition(String roleId) {
		return efRoleMenuDao.findByCondition(roleId);
	}

	public void save(EfRoleMenu transientInstance) {
		efRoleMenuDao.save(transientInstance);
	}

	public void delete(EfRoleMenu transientInstance) {
		efRoleMenuDao.delete(transientInstance);
	}

	public void saveRoleMenu(String roleId, String menuIds) {

		if (!StringUtils.isEmpty(roleId) && !StringUtils.isEmpty(menuIds)) {
			// 先删除
			efRoleMenuDao.delete(roleId);

			// 再保存
			String[] arrMenuIds = menuIds.split(",");
			for (int i = 0; i < arrMenuIds.length; i++) {
				EfRoleMenu efRoleMenu = new EfRoleMenu();
				efRoleMenu.setRoleMenuId(IdentityGenerator.getInstance()
						.getId());

				EfRole efRole = new EfRole();
				efRole.setRoleId(roleId);
				efRoleMenu.setEfRole(efRole);

				EfMenu efMenu = new EfMenu();
				efMenu.setMenuId(arrMenuIds[i]);
				efRoleMenu.setEfMenu(efMenu);

				efRoleMenuDao.save(efRoleMenu);
			}
		}

	}

	public EfRoleMenuDAO getEfRoleMenuDao() {
		return efRoleMenuDao;
	}

	public void setEfRoleMenuDao(EfRoleMenuDAO efRoleMenuDao) {
		this.efRoleMenuDao = efRoleMenuDao;
	}

}
